#pragma once

#include "zacdb.h"
#include "zdbmain.h"

class UcDbViewport;

#pragma pack (push, 8)

class UcDbAnnotativeObjectPE : public UcRxObject
{
public:

	UCRX_DECLARE_MEMBERS(UcDbAnnotativeObjectPE);

	virtual bool annotative(UcDbObject* pObject) const = 0;

	virtual Ucad::ErrorStatus setAnnotative( UcDbObject* pObject,
		const bool  bAnnotative ) = 0;

	virtual Ucad::ErrorStatus setFromStyle(UcDbObject* pObject, 
		bool&       bUpdated) = 0;

	virtual bool forceAnnoAllVisible(UcDbObject* pObj) const { return false;} ;

	virtual Ucad::ErrorStatus setForceAnnoAllVisible(UcDbObject* pObj,
		bool bForce) const 
	{return Ucad::eNotImplemented;}

	virtual Ucad::ErrorStatus resetScaleDependentProperties (
		UcDbObject* pObject) 
	{return Ucad::eNotImplemented;}
};

class UcDbPaperOrientationPE : public UcRxObject
{
public:

    UCRX_DECLARE_MEMBERS(UcDbPaperOrientationPE);
    virtual bool paperOrientation(UcDbObject* pObject) const = 0;
    virtual Ucad::ErrorStatus setPaperOrientation(
                                         UcDbObject* pObject,
                                         const bool  bPaperOrientation ) = 0;
    virtual Ucad::ErrorStatus applyPaperOrientationTransform (
                                         UcDbObject* pObject,
                                         const UcDbViewport *pVport ) const
        { return Ucad::eNotImplemented; }
};

#pragma pack (pop)

